Treasure Hunt Trace

library(tmap)
package ‘tmap’ was built under R version 3.4.4

The location of Tube / Rail Stations in London

#You can have this for free, R fans. Reading XML can be a pain in R, you will need the 'layer' information, which is contained in the <name> tag in a KML file...
#install.packages("rgdal")
library(rgdal)
tubestations <- readOGR("https://www.doogal.co.uk/LondonStationsKML.ashx", "London stations with zone information")

Treasure Hunt Locations

library(tidyverse)

huntaddresses <- read_csv("https://www.dropbox.com/s/v66l4cx7aia9jlo/huntLocations.csv?raw=1")

Geocode with Google Maps API

Merge City of London Wards into a Single zone

library(sf)
library(plyr)
LondonWards_new <- st_union(LondonWardsSF, cityagg)
attribute variables are assumed to be spatially constant throughout all geometries
#finally, update the codes for the city of London so that they match your 
LondonWards_new[1,2] <- as.character("E09000001")
LondonWards_new[1,3] <- as.character("00AA")

LondonWards_new[1,4] <- as.character("City of London")
LS0tCnRpdGxlOiAiUHJhY3RpY2FsNyIKb3V0cHV0OiBodG1sX25vdGVib29rCi0tLQoKIyMjIyBUcmVhc3VyZSBIdW50IFRyYWNlCmBgYHtyfQpsaWJyYXJ5KHRtYXApCmxpYnJhcnkoZ2VvanNvbmlvKQoKI0hlcmUncyB0aGVpciBkYXRhOgpodW50IDwtIGdlb2pzb25fcmVhZCgiaHR0cHM6Ly93d3cuZHJvcGJveC5jb20vcy93YTJpcDM1dGNtdDkzZzMvVGVhbTcuZ2VvanNvbj9yYXc9MSIsIHdoYXQgPSAic3AiKQoKI0FuZCBoZXJlJ3Mgd2hlcmUgdGhleSB3ZW50Li4uCnRtYXBfbW9kZSgidmlldyIpCnRtX3NoYXBlKGh1bnQpICsKICB0bV9saW5lcyhjb2wgPSAiZ3JlZW4iLCBsd2QgPSA0KQpgYGAKCiMjIyMgVGhlIGxvY2F0aW9uIG9mIFR1YmUgLyBSYWlsIFN0YXRpb25zIGluIExvbmRvbgpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBwYWdlZC5wcmludD1UUlVFfQojWW91IGNhbiBoYXZlIHRoaXMgZm9yIGZyZWUsIFIgZmFucy4gUmVhZGluZyBYTUwgY2FuIGJlIGEgcGFpbiBpbiBSLCB5b3Ugd2lsbCBuZWVkIHRoZSAnbGF5ZXInIGluZm9ybWF0aW9uLCB3aGljaCBpcyBjb250YWluZWQgaW4gdGhlIDxuYW1lPiB0YWcgaW4gYSBLTUwgZmlsZS4uLgojaW5zdGFsbC5wYWNrYWdlcygicmdkYWwiKQpsaWJyYXJ5KHJnZGFsKQp0dWJlc3RhdGlvbnMgPC0gcmVhZE9HUigiaHR0cHM6Ly93d3cuZG9vZ2FsLmNvLnVrL0xvbmRvblN0YXRpb25zS01MLmFzaHgiLCAiTG9uZG9uIHN0YXRpb25zIHdpdGggem9uZSBpbmZvcm1hdGlvbiIpCmBgYAoKIyMjIyBUcmVhc3VyZSBIdW50IExvY2F0aW9ucwpgYGB7ciBtZXNzYWdlPUZBTFNFLCB3YXJuaW5nPUZBTFNFLCBwYWdlZC5wcmludD1GQUxTRX0KbGlicmFyeSh0aWR5dmVyc2UpCgpodW50YWRkcmVzc2VzIDwtIHJlYWRfY3N2KCJodHRwczovL3d3dy5kcm9wYm94LmNvbS9zL3Y2Nmw0Y3g3YWlhOWpsby9odW50TG9jYXRpb25zLmNzdj9yYXc9MSIpCmBgYAoKIyMjIyBHZW9jb2RlIHdpdGggR29vZ2xlIE1hcHMgQVBJCmBgYHtyIG1lc3NhZ2U9RkFMU0UsIHdhcm5pbmc9RkFMU0UsIHBhZ2VkLnByaW50PUZBTFNFfQojY29kZSBoZXJlIGxpZnRlZCBkaXJlY3RseSBmcm9tIC0gaHR0cHM6Ly9naXN0LmdpdGh1Yi5jb20vam9zZWNhcmxvc2dvbnovNjQxNzYzMyAKCiNsaWJyYXJ5IHRoZSByZXF1aXJlZCBwYWNrYWdlcwojaW5zdGFsbC5wYWNrYWdlcygiUkN1cmwiKQojaW5zdGFsbC5wYWNrYWdlcygiUkpTT05JTyIpCiNpbnN0YWxsLnBhY2thZ2VzKCJwbHlyIikKI2luc3RhbGwucGFja2FnZXMoInRpZHl2ZXJzZSIpCmxpYnJhcnkoUkN1cmwpCmxpYnJhcnkoUkpTT05JTykKbGlicmFyeShwbHlyKQpsaWJyYXJ5KHRpZHl2ZXJzZSkKCiNoaWdobGlnaHQgdGhpcyB3aG9sZSBibG9jayBhbmQgY3JlYXRlIHRoaXMgZnVuY3Rpb24gdG8gYWNjZXNzIHRoZSBHb29nbGUgUGxhY2VzIEFQSQp1cmwgPC0gZnVuY3Rpb24oYWRkcmVzcywgcmV0dXJuLmNhbGwgPSAianNvbiIsIHNlbnNvciA9ICJmYWxzZSIpIHsKICByb290IDwtICJodHRwOi8vbWFwcy5nb29nbGUuY29tL21hcHMvYXBpL2dlb2NvZGUvIgogIHUgPC0gcGFzdGUocm9vdCwgcmV0dXJuLmNhbGwsICI/YWRkcmVzcz0iLCBhZGRyZXNzLCAiJnNlbnNvcj0iLCBzZW5zb3IsIHNlcCA9ICIiKQogIHJldHVybihVUkxlbmNvZGUodSkpCn0KCiNoaWdobGlnaHQgdGhpcyB3aG9sZSBibG9jayBhbmQgY3JlYXRlIHRoaXMgZnVuY3Rpb24gdG8gZ2VvY29kZSBzb21lIHBsYWNlcyBqdXN0IGZyb20gYSByYW5kb20gbGlzdCBvZiB0cmVhc3VyZSBodW50IGxvY2F0aW9ucwpnZW9Db2RlIDwtIGZ1bmN0aW9uKGFkZHJlc3MsdmVyYm9zZT1GQUxTRSkgewogIGlmKHZlcmJvc2UpIGNhdChhZGRyZXNzLCJcbiIpCiAgdSA8LSB1cmwoYWRkcmVzcykKICBkb2MgPC0gZ2V0VVJMKHUpCiAgeCA8LSBmcm9tSlNPTihkb2Msc2ltcGxpZnkgPSBGQUxTRSkKICBpZih4JHN0YXR1cz09Ik9LIikgewogICAgbGF0IDwtIHgkcmVzdWx0c1tbMV1dJGdlb21ldHJ5JGxvY2F0aW9uJGxhdAogICAgbG5nIDwtIHgkcmVzdWx0c1tbMV1dJGdlb21ldHJ5JGxvY2F0aW9uJGxuZwogICAgbG9jYXRpb25fdHlwZSAgPC0geCRyZXN1bHRzW1sxXV0kZ2VvbWV0cnkkbG9jYXRpb25fdHlwZQogICAgZm9ybWF0dGVkX2FkZHJlc3MgIDwtIHgkcmVzdWx0c1tbMV1dJGZvcm1hdHRlZF9hZGRyZXNzCiAgICByZXR1cm4oYyhsYXQsIGxuZywgbG9jYXRpb25fdHlwZSwgZm9ybWF0dGVkX2FkZHJlc3MpKQogICAgU3lzLnNsZWVwKDAuNSkKICB9IGVsc2UgewogICAgcmV0dXJuKGMoTkEsTkEsTkEsIE5BKSkKICB9Cn0KCiNub3cgdXNlIHRoZSBnZW9Db2RlKCkgZnVuY3Rpb24gKHdoaWNoIGNhbGxzIHRoZSBVUkwgZnVuY3Rpb24pIHRvIGdlb2NvZGUgb3VyIGxpc3Qgb2YgcGxhY2VzCgojZm9yIGxvb3AgdG8gY3ljbGUgdGhyb3VnaCBldmVyeSB0cmVhc3VyZSBodW50IGxvY2F0aW9uCmk9MQpmb3IoaSBpbiAxOm5yb3coaHVudGFkZHJlc3NlcykpewogICMgRXZlcnkgbmluZSByZWNvcmRzLCBwYXVzZSAzIHNlY29uZHMgc28gdGhhdCB0aGUgQVBJIGRvZXNuJ3Qga2ljayB1cyBvZmYuLi4KICBpZihpICUlIDkgPT0gMCkgU3lzLnNsZWVwKDMpCiAgI25vdyBjcmVhdGUgYSB0ZW1wb3JhcnkgbGlzdCBvZiB1c2VmdWwgZWxlbWVudHMgCiAgdGVtcGRmIDwtIGFzLmxpc3QoZ2VvQ29kZShodW50YWRkcmVzc2VzW2ksMV0pKQogICNhbmQgd3JpdGUgdGhlc2UgYmFjayBpbnRvIG91ciBkYXRhZnJhbWUKICBodW50YWRkcmVzc2VzW2ksM10gPC0gdGVtcGRmWzFdCiAgaHVudGFkZHJlc3Nlc1tpLDRdIDwtIHRlbXBkZlsyXQogIGh1bnRhZGRyZXNzZXNbaSw1XSA8LSB0ZW1wZGZbNF0KfQoKIyByZW5hbWUgdGhlIGNvbHVtbnMKbmFtZXMoaHVudGFkZHJlc3NlcykgIDwtIGMoIkxvY2F0aW9uIiwiUG9pbnRzIiwibGF0IiwibG9uIiwiR29vZ2xlQWRkcmVzcyIpCmhlYWQoaHVudGFkZHJlc3NlcykKCiN3cml0ZSBhIG5ldyAuY3N2IGZpbGUgdG8geW91ciB3b3JraW5nIGRpcmVjdG9yeQp3cml0ZV9jc3YoaHVudGFkZHJlc3NlcywgImh1bnRhZGRyZXNzZXMuY3N2IikKYGBgCgojIyMjIE1lcmdlIENpdHkgb2YgTG9uZG9uIFdhcmRzIGludG8gYSBTaW5nbGUgem9uZQoKYGBge3IgbWVzc2FnZT1GQUxTRSwgd2FybmluZz1GQUxTRSwgcGFnZWQucHJpbnQ9RkFMU0V9CmxpYnJhcnkoc2YpCmxpYnJhcnkocGx5cikKYGBgCgpgYGB7cn0KbGlicmFyeShyZ2RhbCkKI0Rvd25sb2FkIHRoZSBXYXJkIEJvdW5kYXJpZXMgZnJvbSBNb29kbGUKTG9uZG9uV2FyZHMgPC0gcmVhZE9HUigiL1ZvbHVtZXMvdWNmbm5hcC9DQVNBX0dJUyBhbmQgU2Mvd2s3L0xvbmRvbldhcmRzQm91bmRhcmllcy9Mb25kb25XYXJkc05ldy5zaHAiKQp0bWFwX21vZGUoInZpZXciKQpxdG0oTG9uZG9uV2FyZHMpCmBgYAoKYGBge3J9CkxvbmRvbldhcmRzU0YgPC0gc3RfYXNfc2YoTG9uZG9uV2FyZHMpCgojY3V0IHRoZSBjaXR5IG91dCAtIHRoaXMganVzdCBoYXBwZW5zIHRvIGJlIHRoZSBmaXJzdCAyNSByb3dzLCB1c2VmdWxseSEKIyBjaXR5IDwtIExvbmRvbldhcmRzU0ZbMToyNSxdCiMgY2l0eSRhZ2cgIDwtIDEKTG9uZG9uV2FyZHNTRiA8LSBMb25kb25XYXJkc1NGWzI2OjY0OSxdCgojbWVyZ2UgYWxsIG9mIHRoZSBib3VuZGFyaWVzIHRvZ2V0aGVyIHNvIHdlJ3ZlIGdvdCBhIHNpbmdsZSBvYmplY3QKIyMjIyMjIyMjIyMjIyMjIGNpdHlhZ2cgPC0gY2l0eSAlPiUgZ3JvdXBfYnkoY2l0eSRhZ2cpICU+JSBzdW1tYXJpc2UoKQpjaXR5YWdnIDwtIHN0X3VuaW9uKGNpdHkpCgojICNkaXNvbHZlIHRoZSB3YXJkIGJvdW5kYXJpZXMgYW5kIGp1c3QgbGVhdmUgdGhlIGZpcnN0IG9uZSBhcyB0aGUgY2l0eSBvZiBMb25kb24KIyBMb25kb25XYXJkc19kaXMgPC0gYWdncmVnYXRlKExvbmRvbldhcmRzU0YsIGJ5ID0gTG9uZG9uV2FyZHNTRiwgRlVOID0gZmlyc3QpCiMgCiMgI21lcmdlIHRoZW0gYmFjayB0b2dldGhlciBpbnRvIGEgbmV3IG9iamVjdAoKTG9uZG9uV2FyZHNfbmV3IDwtIHN0X3VuaW9uKExvbmRvbldhcmRzU0YsIGNpdHlhZ2cpCgpwbG90KExvbmRvbldhcmRzX25ldykKYGBgCgpgYGB7cn0KcXRtKExvbmRvbldhcmRzX25ldykKYGBgCgpgYGB7cn0KI2ZpbmFsbHksIHVwZGF0ZSB0aGUgY29kZXMgZm9yIHRoZSBjaXR5IG9mIExvbmRvbiBzbyB0aGF0IHRoZXkgbWF0Y2ggeW91ciAKTG9uZG9uV2FyZHNfbmV3WzEsMl0gPC0gYXMuY2hhcmFjdGVyKCJFMDkwMDAwMDEiKQpMb25kb25XYXJkc19uZXdbMSwzXSA8LSBhcy5jaGFyYWN0ZXIoIjAwQUEiKQoKTG9uZG9uV2FyZHNfbmV3WzEsNF0gPC0gYXMuY2hhcmFjdGVyKCJDaXR5IG9mIExvbmRvbiIpCmBgYAoK